package cn.tedu.forum.user.webapi.controller;

import cn.tedu.forum.pojo.entity.UserInfo;
import cn.tedu.forum.user.service.IUserInfoService;
import cn.tedu.forum.commons.response.JsonResponse;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;

/**
 * 账户余额控制类
 *
 * @author DunJu Zhou
 */
@RestController
@Api(tags = "账户余额与打赏")
@Slf4j
public class BalanceController {
    @Autowired
    IUserInfoService userInfoService;

    /**
     * 打赏功能控制方法
     *
     * @param payerInfo 打赏者（付款人）基本信息
     * @param payeeInfo 被打赏者（收款人）基本信息
     * @param amount    打赏金额
     * @return 打赏操作状态
     */
    @GetMapping("/article/reward")
    public JsonResponse<Void> giveRewards(UserInfo payerInfo, UserInfo payeeInfo, BigDecimal amount) {
        userInfoService.giveRewards(payerInfo, payeeInfo, amount);
        return JsonResponse.ok();
    }

    /**
     * 充值功能控制方法
     *
     * @param userInfo 用户基本信息
     * @param amount   充值金额
     * @return 充值操作状态
     */
    @GetMapping("/recharge")
    public JsonResponse<Void> recharge(UserInfo userInfo, BigDecimal amount) {
        userInfoService.recharge(userInfo, amount);
        return JsonResponse.ok();
    }
}
